package com.quectel.core.module.grid.dto;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import java.io.Serializable;
import java.util.Date;
import java.util.List;

/**
 * @author zhangheng
 * @email nolan.zhang@quectel.com
 * @date 2023/02/03 16:42
 */
@Data
@Schema
public class GridNoticeDto implements Serializable {

    /**
     * ID
     */
    @Schema(description = "ID")
    private Long id;

    /**
     * 租户id
     */
    @Schema(description = "租户id")
    private Long tenantId;

    /**
     * 省code
     */
    @Schema(description = "省code")
    private String provinceCode;

    /**
     * 市code
     */
    @Schema(description = "市code")
    private String cityCode;

    /**
     * 区code
     */
    @Schema(description = "区code")
    private String districtCode;

    /**
     * 街道code
     */
    @Schema(description = "街道code")
    private String streetCode;

    /**
     * 社区组织编码
     */
    @Schema(description = "社区组织编码")
    private Long villageId;

    /**
     * 创建级别 1省级创建2市级别3区级别4街道级别5社区级别6网格
     */
    @Schema(description = "创建级别 1省级创建2市级别3区级别4街道级别5小区级别")
    private Byte creatorLevel;

    /**
     * 对应级别的唯一表示
     */
    @Schema(description = "对应级别的唯一表示")
    private String creatorUniqueFlag;

    /**
     * 公告标题
     */
    @Schema(description = "公告标题")
    private String title;

    /**
     * 公告简介
     */
    @Schema(description = "公告简介")
    private String alias;

    /**
     * 封面图片
     */
    @Schema(description = "封面图片")
    private String coverImage;

    /**
     * 公告详情
     */
    @Schema(description = "公告详情")
    private String detail;

    /**
     * 发布状态 0禁用 1启用
     */
    @Schema(description = "发布状态 0禁用 1启用")
    private Byte status;

    /**
     * 创建人
     */
    @Schema(description = "创建人")
    private String creator;

    /**
     * 创建时间
     */
    @Schema(description = "创建时间")
    private Date createTime;

    /**
     * 修改人
     */
    @Schema(description = "修改人")
    private String editor;

    /**
     * 修改时间
     */
    @Schema(description = "修改时间")
    private Date editTime;

    /************非数据库字段 start ************/
    @Schema(description = "小区名称")
    private String villageName;

    /**
     * 通知规则绑定关系
     */
    @Schema(description = "通知规则")
    private List<GridNoticeRelationDto> relationList;

    /************非数据库字段 end **************/
}
